package com.gdwstudy.threadExit;



/**
 * @author 关道伟
 * @version 1.0
 * 通知方式结束线程
 */
public class ThreadExit_ {
    public static void main(String[] args) {
        T t1 = new T();
        t1.start();

        //如果希望主线程去控制t1线程的终止  则修改loop变量即可
        //t1退出run方法 终止线程  这就叫做通知方式

        //主线程休眠不影响子线程运行
        try {
            Thread.sleep(10000);//主线程休眠一段时间后 通知t1线程退出
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        t1.setLoop(false);

    }
}

class T extends Thread{
    private int count = 0;
    //设置一个控制变量
    private boolean loop = true;
    @Override
    public void run() {

        while(loop){
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            System.out.println("(运行中)每隔一秒输出..."+count++);
        }
    }

    public boolean isLoop() {
        return loop;
    }

    public void setLoop(boolean loop) {
        this.loop = loop;
    }
}